using System;
using System.Collections;
using System.Collections.Generic;

namespace Neturion.Dados
{
    /// <summary>
    /// 
    /// </summary>
    public class ProtocoloProcedimento : AssuntoProcedimento
    {   
        private DateTime? _dataConclusao;
        private DateTime? _dataVencimento;
        private Protocolo _protocolo;
        private IList _listaProcedimentoSituacaoTramite;

        public ProtocoloProcedimento()
        {
            _listaProcedimentoSituacaoTramite = new List<ProcedimentoSituacaoTramite>();
        }

        /// <summary>
        /// 
        /// </summary>
        public virtual DateTime? DataConclusao
        {
            get { return _dataConclusao; }
            set { _dataConclusao = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        public virtual DateTime? DataVencimento
        {
            get { return _dataVencimento; }
            set { _dataVencimento = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        public virtual Protocolo Protocolo
        {
            get { return _protocolo; }
            set { _protocolo = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        public virtual IList ListaProcedimentoSituacaoTramite
        {
            get { return _listaProcedimentoSituacaoTramite; }
            set { _listaProcedimentoSituacaoTramite = value; }
        }

        
        public virtual void AdicionarProcedimentoSituacaoTramite(ProcedimentoSituacaoTramite procedimentoSituacaoTramite)
        {
            procedimentoSituacaoTramite.ProtocoloProcedimento = this;
            ListaProcedimentoSituacaoTramite.Add(procedimentoSituacaoTramite);
        }

        public virtual void RemoverProcedimentoSituacaoTramite(ProcedimentoSituacaoTramite procedimentoSituacaoTramite)
        {
            ListaProcedimentoSituacaoTramite.Remove(procedimentoSituacaoTramite);
        }
    }
}